
        <html>
			<head>
			     <title>主机被入侵分析过程报告 - HRay</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/13647">http://drops.wooyun.org/tips/13647</a></h1>
				
      <p>
        <h1>0x00 结论</h1>

<hr />

<p>14号上午接到同事报告，某主机cpu占用至100%并出现可疑进程，安全部接手调查后结论如下：</p>

<ol>
<li>主机未限制端口访问，ssh端口暴露外网</li>
<li>外部大量ip（100+）对主机进行暴力破解，且从13号21：12分开始陆续有6外网ip成功验证ssh</li>
<li>验证成功后自动化程序部署后门，并加入至计划任务，第一个成功执行的恶意计划任务时间为22:21:01，发现多处后门，但比对后发现实际可执行文件有两个（通过部分行为及连接ip判断两个文件为同一伙人所留），其余只是文件名不同</li>
<li>14号上午由于恶意进程导致机器cpu占用100%，后门被发现</li>
</ol>

<!--more-->

<h1>0x01 过程</h1>

<hr />

<p>分析过程如下：</p>

<p>登入主机后，找到可疑进程PID</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053333582517.jpg" alt="p1" /></p>

<p>进入proc/进程目录找到对应文件绝对路径在/usr/bin目录下，stat信息如下：</p>

<pre><code>#!bash
[<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="e5978a8a91a59d9d9dcb868a88">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> 13146]# stat /usr/bin/faksiubbri
  file: `/usr/bin/faksiubbri'
  Size: 610224          Blocks: 1200       IO Block: 4096   regular file
Device: 802h/2050d      Inode: 312739      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-14 10:33:13.000000000 +0800
Modify: 2015-01-14 10:29:06.000000000 +0800
Change: 2015-01-14 10:29:06.000000000 +0800

[<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="681a07071c28101010460b0705">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> 13862]# stat /usr/bin/ohzxttdhqk
file: `/usr/bin/ohzxttdhqk
Size: 625622          Blocks: 1232       IO Block: 4096   regular file
Device: 802h/2050d      Inode: 312741      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-14 10:32:59.000000000 +0800
Modify: 2015-01-14 10:29:26.000000000 +0800
Change: 2015-01-14 10:29:26.000000000 +0800
</code></pre>

<p>初步判断入侵时间在14号上午10:29分附近并且已有root权限</p>

<p>通过strings查看文件内容发现远程ip及其他信息</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053343434924.jpg" alt="p2" /></p>

<p>搜索ip发现为香港主机，并且在微博上发现如下信息</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053361075734.jpg" alt="p3" /></p>

<p>结合strings其他信息，确定该文件为恶意程序，目前首先要判断攻击者通过什么途径入侵进来，此处绕了一些弯路，原因如下几点：</p>

<ol>
<li>服务器运行了web、ftp服务，但非root权限</li>
<li>last并未发现异常登录信息、history未发现可疑操作、且默认ssh端口禁止对外开放，故忽视了ssh入侵的判断</li>
<li>服务器存在bash漏洞，导致怀疑是bash漏洞+提权、但未发现可疑的accesslog</li>
<li>此前stat文件判断时间有误，事后发现管理员之前有kill程序进程操作，进程结束后会删除自身并生成新的文件，所以stat到的时间信息其实是管理员kill进程的时间</li>
</ol>

<p>后来有同事在网上查到该ddos后门通过ssh暴力破解方式传播，才重新把目光放到ssh。与相关人员确认得知，服务器由于特殊原因对外开放了22端口，并且机器为弱口令，结合此信息，推测服务器为暴力破解ssh入侵，故排查secure日志</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053376596344.jpg" alt="p4" /></p>

<p>6台外网主机有ssh验证成功记录，时间在13号21：12至23：59分之间，其中ip118.193.199.132与ip104.149.220.27在secure日志中无密码错误记录，推测为使用其它主机暴力破解，成功后返回密码使用其余主机登录</p>

<p>查看cron日志发现每3分钟会执行两个恶意脚本</p>

<pre><code>/etc/cron.hourly/cron.sh
/etc/cron.hourly/udev.sh
</code></pre>

<p>cron.sh文件内容如下</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053385869754.jpg" alt="p5" /></p>

<p>其中/lib/libgcc.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序ohzxttdhqk相同</p>

<p>udev.sh文件内容如下</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053404995763.jpg" alt="p6" /></p>

<p>其中/lib/libgcc4.so通过文件大小及strings部分内容基本确定与/usr/bin下的恶意程序faksiubbri相同</p>

<p>分别查看第一次执行计划任务时间如下</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053417583973.jpg" alt="p7" /></p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053435857382.jpg" alt="p8" /></p>

<p>时间上与暴力破解成功时间吻合，基本可判断后门程序通过ssh途径被植入</p>

<p>查看secure日志，取之前发现ip成功验证ssh至断开连接时间差，结果如下</p>

<p>221.235.189.229</p>

<p><img src="http://static.wooyun.org//drops/20160311/201603110053449334292.jpg" alt="p9" /></p>

<p>62.210.180.180</p>

<p><img src="http://static.wooyun.org//drops/20160311/2016031100534579384102.jpg" alt="p10" /></p>

<p>103.41.124.48</p>

<p><img src="http://static.wooyun.org//drops/20160311/2016031100534747628113.jpg" alt="p11" /></p>

<p>118.193.199.132</p>

<p><img src="http://static.wooyun.org//drops/20160311/2016031100534883883123.jpg" alt="p12" /></p>

<p>175.126.82.235<br />
Jan 13 23:22:23成功认证后无断开信息</p>

<p>104.149.220.27</p>

<p><img src="http://static.wooyun.org//drops/20160311/2016031100534961583132.jpg" alt="p13" /></p>

<p>通过成功验证ssh至断开连接时间差可看到221.235.189.229、62.210.180.180、103.41.124.48时间差为0，推测暴力破解成功后无其他举动，那么结合计划任务运行时间与时间差信息可判断种植后门的两个ip应该为118.193.199.132与175.126.82.235</p>

<p>但118.193.199.132时间差也仅有5秒钟时间，人工很难完成种植后门的操作，由此判断是自动化程序完成</p>

<h1>0x02 疑点</h1>

<hr />

<p>目前疑点主要为不清楚后门通过什么方式被部署进来？</p>

<p>验证发现通过scp远程拷贝文件至主机与ssh登录后退出都会产生Received disconnect的日志，如果通过ssh自动化部署，last为何会看不到记录？是否单独清除了相关记录？如果是scp远程拷贝，是通过什么方式执行程序的？目前暂不知晓通过何种方式可以仅将文件放入机器后可以让程序自动执行，是否还有其他部署方式？</p>

<h1>0x03 改进建议</h1>

<hr />

<ol>
<li>排查其他主机是否有重要端口对外</li>
<li><p>排查其他主机是否存在恶意文件，可注意以下几点：</p>

<ol>
<li>/etc/init.d/目录下是否存在10位随机字母文件名的文件</li>
<li>/etc/rc%d.d/S90+10位随机字母文件名的文件（%d为0-5数字）</li>
<li>是否存在/etc/cron.hourly/udev.sh</li>
<li>是否存在/etc/ cron.hourly/cron.sh</li>
<li>/etc/crontab中是否存在可疑计划任务</li>
<li>/usr/bin目录下是否存在10位随机字母文件名的文件</li>
</ol></li>
<li><p>修复主机bash漏洞</p></li>
<li><p>增加主机密码复杂度（包括重要端口不对外主机）</p></li>
<li><p>针对异常情况主机，安全人员排查前尽量不要有操作，如果需要对文件有操作，一定要先保存stat信息结果，备份文件内容，修改密码/新建账户/删除账户前一定要先<code>stat /etc/passwd</code>与<code>stat /etc/shadow</code>并保存执行结果</p></li>
</ol>

<h1>0x04 题外话</h1>

<hr />

<p>以上内容为之前对公司层面写的一份应急响应报告，大家可以参考下流程，有一点需要改正的是判断入侵途径这里因为主观判断认为不会是ssh入侵导致浪费了不少时间，在分析过程陷入瓶颈的时候，应该以多看日志为主，而非大脑空想，最后补充几个linux下应急响应中常用到的一些思路和命令，希望对大家有所帮助</p>

<h3>web入侵</h3>

<p>web类入侵事件可结合以下几点排查：</p>

<ol>
<li>记录后门文件stat信息，判断入侵发生时间，另外需要与accesslog做对比，判断是否为第一个后门。</li>
<li>查找入侵者放置的其他后门可通过已知后门文件的mtime、文件内容等可作为特征查找，也可以与svn、此前备份文件做比对或者打包web目录文件使用一些webshell查杀软件。</li>
<li><p>查找一天内修改过的文件命令</p>

<pre><code>#!bash
find /home/work –mtime -1 –type f
</code></pre></li>
<li><p>查找系统中包含指定字符的所有文件（可以拿已知shell密码及特定字符作为关键字）</p>

<pre><code>#!bash
find /|xargs grep -ri "Bot1234" -l 2&gt;/dev/null（执行后会改变所有文件的atime，请做完5中提到的点之后操作）
</code></pre></li>
<li><p>查看较大的日志文件时，可先通过fgrep指定字符筛选，比如已知shell文件为conf.php,可通过命令<code>fgrep –a ‘conf.php’ accesslog &gt; conf_access</code>来筛选conf.php的访问记录，如果为一些高危漏洞，也可根据漏洞利用的关键字来筛选，通过第一步筛选结果后可找出入侵者ip等信息，可继续通过这些信息在accesslog中找到攻击者的所有访问记录以便进一步排查</p></li>
<li><p>判断影响时，当webshell操作为post且无流量镜像时，判断一些敏感文件如源码打包文件、包含密码信息文件是否被读取可通过文件atime信息来判断，此外对webshell的请求条数以及返回的字节数都可以作为定损的大概依据</p></li>
</ol>

<h3>非web方式入侵</h3>

<p>主要通过其他高危服务，目前遇到的案例中大多属于ssh对外且弱口令的情况，主要结合syslog判断</p>

<p>此外，可结合以下几点排查：</p>

<ol>
<li>判断服务器是否支持访问外网，如支持，通过<code>netstat –an</code>查看是否已与外部可疑服务器建立连接，如已建立需及时断开</li>
<li>记录后门文件stat信息，根据mtime查找其他后门文件，同时根据文件属组与属组对应运行服务判断入侵方式</li>
<li>如果权限组为root，需要检测是否被种rootkit，rootkit检测可使用rkhunter：<a href="http://rkhunter.sourceforge.net/">http://rkhunter.sourceforge.net/</a></li>
<li>非web类后门，大部分人习惯把恶意文件放置在/tmp目录下，此外可通过可疑进程名与cpu占用率排查，有些后门会伪装正常进程名，但是top命令可通过cpu占用率找出后门进程，获取进程pid后可cd到/proc/对应pid目录，<code>ls –al</code>查看exe对应值可得知文件路径，另外可查看计划任务，后门程序为保证自启动往往会添加新的计划任务</li>
</ol>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          